package com.rownext.kernel.logging 
{
	import flash.events.IEventDispatcher;	
	
	/**
	 * 所有的日志记录操作均通过此接口进行。
	 * @author Wang Kang
	 */
	public interface ILogger extends IEventDispatcher
	{
		function trace(message:String):void;

		function debug(message:String):void;

		function info(message:String):void;

		function warn(message:String, error:Error = null):void;

		function error(message:String, error:Error = null):void;

		function fatal(message:String, error:Error = null):void;

		function isTraceEnabled():Boolean;

		function isDebugEnabled():Boolean;

		function isInfoEnabled():Boolean;

		function isWarnEnabled():Boolean;

		function isErrorEnabled():Boolean;

		function isFatalEnabled():Boolean;

		/**
		 * 日志记录器的名称，建议使用记录器引用对象的完整路径类名
		 */
		function get name():String;

		/**
		 * 记录器的当前级别，低于此级别的记录动作将会屏蔽
		 */
		function get level():LogLevel;

		function set level(level:LogLevel):void;
	}
}
